#include "mainwindow.h"
#include "ui_mainwindow.h"
#include<QProgressBar>
#include<QLabel>
#include<QPushButton>
#include<QTime>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    setupStatusBarWithSpacers();
    // // 存在就获取, 不存在就创建
    // QStatusBar* statusBar = this->statusBar();
    // // 如果状态栏没有被创建, 这样的设置是必要的.
    // // 如果状态栏已经在窗口中存在, 这样的设置其实意义不大, 但是也没副作用. 仍然保留.
    // this->setStatusBar(statusBar);

    // // 显示一个临时的信息.
    // //statusBar->showMessage("这是一个状态消息",2000);

    // //添加控件到statusbar中

    // // 给状态栏中添加子控件
    // QLabel* label = new QLabel("提示信息");
    // statusBar->addWidget(label);
    // //statusBar->addPermanentWidget(label);

    // //    QLabel* label2 = new QLabel("这个是另一个 QLabel");
    // //    statusBar->addWidget(label2, 2);

    // //statusBar->showMessage("这是一个状态消息",2000);


    // QProgressBar* progressBar = new QProgressBar();
    // progressBar->setRange(0, 100);
    // progressBar->setValue(50);
    // statusBar->addWidget(progressBar);

    // QPushButton* button = new QPushButton("按钮");
    // statusBar->addPermanentWidget(button);

    //其中分左中右三侧区域，左侧临时消息，使用showMessage展示，右侧为永久区域使用addPermanentWidget，中间一般也为临时区;
    //可理解为左侧区域​​：主要状态和临时信息​​中间区域​​：使用弹簧或伸展部件占用空间​​右 侧区域​​：永久性信息和系统状态
}

void MainWindow:: setupStatusBarWithSpacers()
{
    QStatusBar *statusBar = new QStatusBar(this);

    // 左侧标签
    QLabel *appStatus = new QLabel("就绪");
    statusBar->addWidget(appStatus);

    // 添加弹簧（将后续部件推到右侧）
    statusBar->addPermanentWidget(new QLabel("永久信息"));

    // 或者使用多个弹簧精确控制
    QWidget *spacer = new QWidget();
    spacer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
    statusBar->addWidget(spacer); // 这个弹簧会占据中间空间

    QLabel *timeLabel = new QLabel(QTime::currentTime().toString());
    statusBar->addPermanentWidget(timeLabel);

    this->setStatusBar(statusBar);
}

MainWindow::~MainWindow()
{
    delete ui;
}
